<program>
  <sourceElements>
    <sourceElement>
      <functionDeclaration>
        <TOKEN startline="1" startpos="0">function</TOKEN>
        <Identifier startline="1" startpos="9">func</Identifier>
        <formalParameterList>
          <TOKEN startline="1" startpos="13">(</TOKEN>
          <RPAREN startline="1" startpos="14">)</RPAREN>
        </formalParameterList>
        <functionBody>
          <TOKEN startline="1" startpos="16">{</TOKEN>
          <sourceElements>
            <sourceElement>
              <statement>
                <expressionStatement>
                  <expression>
                    <assignmentExpression>
                      <leftHandSideExpression>
                        <newExpression>
                          <memberExpression>
                            <primaryExpression>
                              <Identifier startline="2" startpos="1">i</Identifier>
                            </primaryExpression>
                          </memberExpression>
                        </newExpression>
                      </leftHandSideExpression>
                      <assignmentOperator>
                        <TOKEN startline="2" startpos="3">=</TOKEN>
                      </assignmentOperator>
                      <assignmentExpression>
                        <conditionalExpression>
                          <logicalORExpression>
                            <logicalANDExpression>
                              <bitwiseORExpression>
                                <bitwiseXORExpression>
                                  <bitwiseANDExpression>
                                    <equalityExpression>
                                      <relationalExpression>
                                        <shiftExpression>
                                          <additiveExpression>
                                            <multiplicativeExpression>
                                              <unaryExpression>
                                                <postfixExpression>
                                                  <leftHandSideExpression>
                                                    <newExpression>
                                                      <memberExpression>
                                                        <primaryExpression>
                                                          <literal>
                                                            <numericliteral>
                                                              <NumericLiteral startline="2" startpos="5">0</NumericLiteral>
                                                            </numericliteral>
                                                          </literal>
                                                        </primaryExpression>
                                                      </memberExpression>
                                                    </newExpression>
                                                  </leftHandSideExpression>
                                                </postfixExpression>
                                              </unaryExpression>
                                            </multiplicativeExpression>
                                          </additiveExpression>
                                        </shiftExpression>
                                      </relationalExpression>
                                    </equalityExpression>
                                  </bitwiseANDExpression>
                                </bitwiseXORExpression>
                              </bitwiseORExpression>
                            </logicalANDExpression>
                          </logicalORExpression>
                        </conditionalExpression>
                      </assignmentExpression>
                    </assignmentExpression>
                  </expression>
                  <statementEnd>
                    <TOKEN startline="2" startpos="6">;</TOKEN>
                  </statementEnd>
                </expressionStatement>
              </statement>
            </sourceElement>
            <sourceElement>
              <statement>
                <expressionStatement>
                  <expression>
                    <assignmentExpression>
                      <leftHandSideExpression>
                        <newExpression>
                          <memberExpression>
                            <primaryExpression>
                              <Identifier startline="3" startpos="1">obj</Identifier>
                            </primaryExpression>
                          </memberExpression>
                        </newExpression>
                      </leftHandSideExpression>
                      <assignmentOperator>
                        <TOKEN startline="3" startpos="5">=</TOKEN>
                      </assignmentOperator>
                      <assignmentExpression>
                        <conditionalExpression>
                          <logicalORExpression>
                            <logicalANDExpression>
                              <bitwiseORExpression>
                                <bitwiseXORExpression>
                                  <bitwiseANDExpression>
                                    <equalityExpression>
                                      <relationalExpression>
                                        <shiftExpression>
                                          <additiveExpression>
                                            <multiplicativeExpression>
                                              <unaryExpression>
                                                <postfixExpression>
                                                  <leftHandSideExpression>
                                                    <newExpression>
                                                      <memberExpression>
                                                        <primaryExpression>
                                                          <objectLiteral>
                                                            <TOKEN startline="3" startpos="7">{</TOKEN>
                                                            <propertyNameAndValue>
                                                              <propertyName>
                                                                <Identifier startline="3" startpos="9">a</Identifier>
                                                              </propertyName>
                                                              <TOKEN startline="3" startpos="10">:</TOKEN>
                                                              <assignmentExpression>
                                                                <conditionalExpression>
                                                                  <logicalORExpression>
                                                                    <logicalANDExpression>
                                                                      <bitwiseORExpression>
                                                                        <bitwiseXORExpression>
                                                                          <bitwiseANDExpression>
                                                                            <equalityExpression>
                                                                              <relationalExpression>
                                                                                <shiftExpression>
                                                                                  <additiveExpression>
                                                                                    <multiplicativeExpression>
                                                                                      <unaryExpression>
                                                                                        <postfixExpression>
                                                                                          <leftHandSideExpression>
                                                                                            <newExpression>
                                                                                              <memberExpression>
                                                                                                <primaryExpression>
                                                                                                  <literal>
                                                                                                    <numericliteral>
                                                                                                      <NumericLiteral startline="3" startpos="12">1</NumericLiteral>
                                                                                                    </numericliteral>
                                                                                                  </literal>
                                                                                                </primaryExpression>
                                                                                              </memberExpression>
                                                                                            </newExpression>
                                                                                          </leftHandSideExpression>
                                                                                        </postfixExpression>
                                                                                      </unaryExpression>
                                                                                    </multiplicativeExpression>
                                                                                  </additiveExpression>
                                                                                </shiftExpression>
                                                                              </relationalExpression>
                                                                            </equalityExpression>
                                                                          </bitwiseANDExpression>
                                                                        </bitwiseXORExpression>
                                                                      </bitwiseORExpression>
                                                                    </logicalANDExpression>
                                                                  </logicalORExpression>
                                                                </conditionalExpression>
                                                              </assignmentExpression>
                                                            </propertyNameAndValue>
                                                            <RBRACE startline="3" startpos="14">}</RBRACE>
                                                          </objectLiteral>
                                                        </primaryExpression>
                                                      </memberExpression>
                                                    </newExpression>
                                                  </leftHandSideExpression>
                                                </postfixExpression>
                                              </unaryExpression>
                                            </multiplicativeExpression>
                                          </additiveExpression>
                                        </shiftExpression>
                                      </relationalExpression>
                                    </equalityExpression>
                                  </bitwiseANDExpression>
                                </bitwiseXORExpression>
                              </bitwiseORExpression>
                            </logicalANDExpression>
                          </logicalORExpression>
                        </conditionalExpression>
                      </assignmentExpression>
                    </assignmentExpression>
                  </expression>
                  <statementEnd>
                    <LT startline="3" startpos="15">
</LT>
                  </statementEnd>
                </expressionStatement>
              </statement>
            </sourceElement>
            <sourceElement>
              <statement>
                <ifStatement>
                  <TOKEN startline="5" startpos="1">if</TOKEN>
                  <TOKEN startline="5" startpos="4">(</TOKEN>
                  <expression>
                    <assignmentExpression>
                      <conditionalExpression>
                        <logicalORExpression>
                          <logicalANDExpression>
                            <bitwiseORExpression>
                              <bitwiseXORExpression>
                                <bitwiseANDExpression>
                                  <equalityExpression>
                                    <relationalExpression>
                                      <shiftExpression>
                                        <additiveExpression>
                                          <multiplicativeExpression>
                                            <unaryExpression>
                                              <postfixExpression>
                                                <leftHandSideExpression>
                                                  <newExpression>
                                                    <memberExpression>
                                                      <primaryExpression>
                                                        <Identifier startline="5" startpos="5">i</Identifier>
                                                      </primaryExpression>
                                                    </memberExpression>
                                                  </newExpression>
                                                </leftHandSideExpression>
                                              </postfixExpression>
                                            </unaryExpression>
                                          </multiplicativeExpression>
                                        </additiveExpression>
                                      </shiftExpression>
                                    </relationalExpression>
                                    <TOKEN startline="5" startpos="7">==</TOKEN>
                                    <relationalExpression>
                                      <shiftExpression>
                                        <additiveExpression>
                                          <multiplicativeExpression>
                                            <unaryExpression>
                                              <postfixExpression>
                                                <leftHandSideExpression>
                                                  <newExpression>
                                                    <memberExpression>
                                                      <primaryExpression>
                                                        <literal>
                                                          <numericliteral>
                                                            <NumericLiteral startline="5" startpos="10">0</NumericLiteral>
                                                          </numericliteral>
                                                        </literal>
                                                      </primaryExpression>
                                                    </memberExpression>
                                                  </newExpression>
                                                </leftHandSideExpression>
                                              </postfixExpression>
                                            </unaryExpression>
                                          </multiplicativeExpression>
                                        </additiveExpression>
                                      </shiftExpression>
                                    </relationalExpression>
                                  </equalityExpression>
                                </bitwiseANDExpression>
                              </bitwiseXORExpression>
                            </bitwiseORExpression>
                          </logicalANDExpression>
                        </logicalORExpression>
                      </conditionalExpression>
                    </assignmentExpression>
                  </expression>
                  <RPAREN startline="5" startpos="11">)</RPAREN>
                  <statement>
                    <emptyStatement>
                      <TOKEN startline="5" startpos="12">;</TOKEN>
                    </emptyStatement>
                  </statement>
                </ifStatement>
              </statement>
            </sourceElement>
            <sourceElement>
              <statement>
                <iterationStatement>
                  <whileStatement>
                    <TOKEN startline="7" startpos="1">while</TOKEN>
                    <TOKEN startline="7" startpos="7">(</TOKEN>
                    <expression>
                      <assignmentExpression>
                        <conditionalExpression>
                          <logicalORExpression>
                            <logicalANDExpression>
                              <bitwiseORExpression>
                                <bitwiseXORExpression>
                                  <bitwiseANDExpression>
                                    <equalityExpression>
                                      <relationalExpression>
                                        <shiftExpression>
                                          <additiveExpression>
                                            <multiplicativeExpression>
                                              <unaryExpression>
                                                <postfixExpression>
                                                  <leftHandSideExpression>
                                                    <newExpression>
                                                      <memberExpression>
                                                        <primaryExpression>
                                                          <Identifier startline="7" startpos="8">i</Identifier>
                                                        </primaryExpression>
                                                      </memberExpression>
                                                    </newExpression>
                                                  </leftHandSideExpression>
                                                </postfixExpression>
                                              </unaryExpression>
                                            </multiplicativeExpression>
                                          </additiveExpression>
                                        </shiftExpression>
                                      </relationalExpression>
                                      <TOKEN startline="7" startpos="10">!=</TOKEN>
                                      <relationalExpression>
                                        <shiftExpression>
                                          <additiveExpression>
                                            <multiplicativeExpression>
                                              <unaryExpression>
                                                <postfixExpression>
                                                  <leftHandSideExpression>
                                                    <newExpression>
                                                      <memberExpression>
                                                        <primaryExpression>
                                                          <literal>
                                                            <numericliteral>
                                                              <NumericLiteral startline="7" startpos="13">0</NumericLiteral>
                                                            </numericliteral>
                                                          </literal>
                                                        </primaryExpression>
                                                      </memberExpression>
                                                    </newExpression>
                                                  </leftHandSideExpression>
                                                </postfixExpression>
                                              </unaryExpression>
                                            </multiplicativeExpression>
                                          </additiveExpression>
                                        </shiftExpression>
                                      </relationalExpression>
                                    </equalityExpression>
                                  </bitwiseANDExpression>
                                </bitwiseXORExpression>
                              </bitwiseORExpression>
                            </logicalANDExpression>
                          </logicalORExpression>
                        </conditionalExpression>
                      </assignmentExpression>
                    </expression>
                    <RPAREN startline="7" startpos="14">)</RPAREN>
                    <statement>
                      <emptyStatement>
                        <TOKEN startline="7" startpos="15">;</TOKEN>
                      </emptyStatement>
                    </statement>
                  </whileStatement>
                </iterationStatement>
              </statement>
            </sourceElement>
            <sourceElement>
              <statement>
                <iterationStatement>
                  <doWhileStatement>
                    <TOKEN startline="9" startpos="1">do</TOKEN>
                    <statement>
                      <emptyStatement>
                        <TOKEN startline="9" startpos="4">;</TOKEN>
                      </emptyStatement>
                    </statement>
                    <TOKEN startline="9" startpos="6">while</TOKEN>
                    <TOKEN startline="9" startpos="12">(</TOKEN>
                    <expression>
                      <assignmentExpression>
                        <conditionalExpression>
                          <logicalORExpression>
                            <logicalANDExpression>
                              <bitwiseORExpression>
                                <bitwiseXORExpression>
                                  <bitwiseANDExpression>
                                    <equalityExpression>
                                      <relationalExpression>
                                        <shiftExpression>
                                          <additiveExpression>
                                            <multiplicativeExpression>
                                              <unaryExpression>
                                                <postfixExpression>
                                                  <leftHandSideExpression>
                                                    <newExpression>
                                                      <memberExpression>
                                                        <primaryExpression>
                                                          <Identifier startline="9" startpos="13">i</Identifier>
                                                        </primaryExpression>
                                                      </memberExpression>
                                                    </newExpression>
                                                  </leftHandSideExpression>
                                                </postfixExpression>
                                              </unaryExpression>
                                            </multiplicativeExpression>
                                          </additiveExpression>
                                        </shiftExpression>
                                      </relationalExpression>
                                      <TOKEN startline="9" startpos="15">!=</TOKEN>
                                      <relationalExpression>
                                        <shiftExpression>
                                          <additiveExpression>
                                            <multiplicativeExpression>
                                              <unaryExpression>
                                                <postfixExpression>
                                                  <leftHandSideExpression>
                                                    <newExpression>
                                                      <memberExpression>
                                                        <primaryExpression>
                                                          <literal>
                                                            <numericliteral>
                                                              <NumericLiteral startline="9" startpos="18">0</NumericLiteral>
                                                            </numericliteral>
                                                          </literal>
                                                        </primaryExpression>
                                                      </memberExpression>
                                                    </newExpression>
                                                  </leftHandSideExpression>
                                                </postfixExpression>
                                              </unaryExpression>
                                            </multiplicativeExpression>
                                          </additiveExpression>
                                        </shiftExpression>
                                      </relationalExpression>
                                    </equalityExpression>
                                  </bitwiseANDExpression>
                                </bitwiseXORExpression>
                              </bitwiseORExpression>
                            </logicalANDExpression>
                          </logicalORExpression>
                        </conditionalExpression>
                      </assignmentExpression>
                    </expression>
                    <RPAREN startline="9" startpos="19">)</RPAREN>
                    <statementEnd>
                      <TOKEN startline="9" startpos="20">;</TOKEN>
                    </statementEnd>
                  </doWhileStatement>
                </iterationStatement>
              </statement>
            </sourceElement>
            <sourceElement>
              <statement>
                <iterationStatement>
                  <forStatement>
                    <TOKEN startline="11" startpos="1">for</TOKEN>
                    <TOKEN startline="11" startpos="5">(</TOKEN>
                    <forStatementInitialiserPart>
                      <expressionNoIn>
                        <assignmentExpressionNoIn>
                          <leftHandSideExpression>
                            <newExpression>
                              <memberExpression>
                                <primaryExpression>
                                  <Identifier startline="11" startpos="6">i</Identifier>
                                </primaryExpression>
                              </memberExpression>
                            </newExpression>
                          </leftHandSideExpression>
                          <assignmentOperator>
                            <TOKEN startline="11" startpos="8">=</TOKEN>
                          </assignmentOperator>
                          <assignmentExpressionNoIn>
                            <conditionalExpressionNoIn>
                              <logicalORExpressionNoIn>
                                <logicalANDExpressionNoIn>
                                  <bitwiseORExpressionNoIn>
                                    <bitwiseXORExpressionNoIn>
                                      <bitwiseANDExpressionNoIn>
                                        <equalityExpressionNoIn>
                                          <relationalExpressionNoIn>
                                            <shiftExpression>
                                              <additiveExpression>
                                                <multiplicativeExpression>
                                                  <unaryExpression>
                                                    <postfixExpression>
                                                      <leftHandSideExpression>
                                                        <newExpression>
                                                          <memberExpression>
                                                            <primaryExpression>
                                                              <literal>
                                                                <numericliteral>
                                                                  <NumericLiteral startline="11" startpos="10">0</NumericLiteral>
                                                                </numericliteral>
                                                              </literal>
                                                            </primaryExpression>
                                                          </memberExpression>
                                                        </newExpression>
                                                      </leftHandSideExpression>
                                                    </postfixExpression>
                                                  </unaryExpression>
                                                </multiplicativeExpression>
                                              </additiveExpression>
                                            </shiftExpression>
                                          </relationalExpressionNoIn>
                                        </equalityExpressionNoIn>
                                      </bitwiseANDExpressionNoIn>
                                    </bitwiseXORExpressionNoIn>
                                  </bitwiseORExpressionNoIn>
                                </logicalANDExpressionNoIn>
                              </logicalORExpressionNoIn>
                            </conditionalExpressionNoIn>
                          </assignmentExpressionNoIn>
                        </assignmentExpressionNoIn>
                      </expressionNoIn>
                    </forStatementInitialiserPart>
                    <TOKEN startline="11" startpos="11">;</TOKEN>
                    <expression>
                      <assignmentExpression>
                        <conditionalExpression>
                          <logicalORExpression>
                            <logicalANDExpression>
                              <bitwiseORExpression>
                                <bitwiseXORExpression>
                                  <bitwiseANDExpression>
                                    <equalityExpression>
                                      <relationalExpression>
                                        <shiftExpression>
                                          <additiveExpression>
                                            <multiplicativeExpression>
                                              <unaryExpression>
                                                <postfixExpression>
                                                  <leftHandSideExpression>
                                                    <newExpression>
                                                      <memberExpression>
                                                        <primaryExpression>
                                                          <Identifier startline="11" startpos="13">i</Identifier>
                                                        </primaryExpression>
                                                      </memberExpression>
                                                    </newExpression>
                                                  </leftHandSideExpression>
                                                </postfixExpression>
                                              </unaryExpression>
                                            </multiplicativeExpression>
                                          </additiveExpression>
                                        </shiftExpression>
                                        <TOKEN startline="11" startpos="15">&lt;</TOKEN>
                                        <shiftExpression>
                                          <additiveExpression>
                                            <multiplicativeExpression>
                                              <unaryExpression>
                                                <postfixExpression>
                                                  <leftHandSideExpression>
                                                    <newExpression>
                                                      <memberExpression>
                                                        <primaryExpression>
                                                          <literal>
                                                            <numericliteral>
                                                              <NumericLiteral startline="11" startpos="17">0</NumericLiteral>
                                                            </numericliteral>
                                                          </literal>
                                                        </primaryExpression>
                                                      </memberExpression>
                                                    </newExpression>
                                                  </leftHandSideExpression>
                                                </postfixExpression>
                                              </unaryExpression>
                                            </multiplicativeExpression>
                                          </additiveExpression>
                                        </shiftExpression>
                                      </relationalExpression>
                                    </equalityExpression>
                                  </bitwiseANDExpression>
                                </bitwiseXORExpression>
                              </bitwiseORExpression>
                            </logicalANDExpression>
                          </logicalORExpression>
                        </conditionalExpression>
                      </assignmentExpression>
                    </expression>
                    <TOKEN startline="11" startpos="18">;</TOKEN>
                    <expression>
                      <assignmentExpression>
                        <conditionalExpression>
                          <logicalORExpression>
                            <logicalANDExpression>
                              <bitwiseORExpression>
                                <bitwiseXORExpression>
                                  <bitwiseANDExpression>
                                    <equalityExpression>
                                      <relationalExpression>
                                        <shiftExpression>
                                          <additiveExpression>
                                            <multiplicativeExpression>
                                              <unaryExpression>
                                                <postfixExpression>
                                                  <leftHandSideExpression>
                                                    <newExpression>
                                                      <memberExpression>
                                                        <primaryExpression>
                                                          <Identifier startline="11" startpos="20">i</Identifier>
                                                        </primaryExpression>
                                                      </memberExpression>
                                                    </newExpression>
                                                  </leftHandSideExpression>
                                                  <TOKEN startline="11" startpos="21">++</TOKEN>
                                                </postfixExpression>
                                              </unaryExpression>
                                            </multiplicativeExpression>
                                          </additiveExpression>
                                        </shiftExpression>
                                      </relationalExpression>
                                    </equalityExpression>
                                  </bitwiseANDExpression>
                                </bitwiseXORExpression>
                              </bitwiseORExpression>
                            </logicalANDExpression>
                          </logicalORExpression>
                        </conditionalExpression>
                      </assignmentExpression>
                    </expression>
                    <RPAREN startline="11" startpos="23">)</RPAREN>
                    <statement>
                      <emptyStatement>
                        <TOKEN startline="11" startpos="24">;</TOKEN>
                      </emptyStatement>
                    </statement>
                  </forStatement>
                </iterationStatement>
              </statement>
            </sourceElement>
            <sourceElement>
              <statement>
                <iterationStatement>
                  <forInStatement>
                    <TOKEN startline="13" startpos="1">for</TOKEN>
                    <TOKEN startline="13" startpos="5">(</TOKEN>
                    <forInStatementInitialiserPart>
                      <leftHandSideExpression>
                        <newExpression>
                          <memberExpression>
                            <primaryExpression>
                              <Identifier startline="13" startpos="6">i</Identifier>
                            </primaryExpression>
                          </memberExpression>
                        </newExpression>
                      </leftHandSideExpression>
                    </forInStatementInitialiserPart>
                    <TOKEN startline="13" startpos="8">in</TOKEN>
                    <expression>
                      <assignmentExpression>
                        <conditionalExpression>
                          <logicalORExpression>
                            <logicalANDExpression>
                              <bitwiseORExpression>
                                <bitwiseXORExpression>
                                  <bitwiseANDExpression>
                                    <equalityExpression>
                                      <relationalExpression>
                                        <shiftExpression>
                                          <additiveExpression>
                                            <multiplicativeExpression>
                                              <unaryExpression>
                                                <postfixExpression>
                                                  <leftHandSideExpression>
                                                    <newExpression>
                                                      <memberExpression>
                                                        <TOKEN startline="13" startpos="11">new</TOKEN>
                                                        <memberExpression>
                                                          <primaryExpression>
                                                            <Identifier startline="13" startpos="15">Array</Identifier>
                                                          </primaryExpression>
                                                        </memberExpression>
                                                        <arguments>
                                                          <TOKEN startline="13" startpos="20">(</TOKEN>
                                                          <RPAREN startline="13" startpos="21">)</RPAREN>
                                                        </arguments>
                                                      </memberExpression>
                                                    </newExpression>
                                                  </leftHandSideExpression>
                                                </postfixExpression>
                                              </unaryExpression>
                                            </multiplicativeExpression>
                                          </additiveExpression>
                                        </shiftExpression>
                                      </relationalExpression>
                                    </equalityExpression>
                                  </bitwiseANDExpression>
                                </bitwiseXORExpression>
                              </bitwiseORExpression>
                            </logicalANDExpression>
                          </logicalORExpression>
                        </conditionalExpression>
                      </assignmentExpression>
                    </expression>
                    <RPAREN startline="13" startpos="22">)</RPAREN>
                    <statement>
                      <emptyStatement>
                        <TOKEN startline="13" startpos="23">;</TOKEN>
                      </emptyStatement>
                    </statement>
                  </forInStatement>
                </iterationStatement>
              </statement>
            </sourceElement>
            <sourceElement>
              <statement>
                <withStatement>
                  <TOKEN startline="15" startpos="1">with</TOKEN>
                  <TOKEN startline="15" startpos="5">(</TOKEN>
                  <expression>
                    <assignmentExpression>
                      <conditionalExpression>
                        <logicalORExpression>
                          <logicalANDExpression>
                            <bitwiseORExpression>
                              <bitwiseXORExpression>
                                <bitwiseANDExpression>
                                  <equalityExpression>
                                    <relationalExpression>
                                      <shiftExpression>
                                        <additiveExpression>
                                          <multiplicativeExpression>
                                            <unaryExpression>
                                              <postfixExpression>
                                                <leftHandSideExpression>
                                                  <newExpression>
                                                    <memberExpression>
                                                      <primaryExpression>
                                                        <Identifier startline="15" startpos="6">obj</Identifier>
                                                      </primaryExpression>
                                                    </memberExpression>
                                                  </newExpression>
                                                </leftHandSideExpression>
                                              </postfixExpression>
                                            </unaryExpression>
                                          </multiplicativeExpression>
                                        </additiveExpression>
                                      </shiftExpression>
                                    </relationalExpression>
                                  </equalityExpression>
                                </bitwiseANDExpression>
                              </bitwiseXORExpression>
                            </bitwiseORExpression>
                          </logicalANDExpression>
                        </logicalORExpression>
                      </conditionalExpression>
                    </assignmentExpression>
                  </expression>
                  <RPAREN startline="15" startpos="9">)</RPAREN>
                  <statement>
                    <emptyStatement>
                      <TOKEN startline="15" startpos="10">;</TOKEN>
                    </emptyStatement>
                  </statement>
                </withStatement>
              </statement>
            </sourceElement>
            <sourceElement>
              <statement>
                <ifStatement>
                  <TOKEN startline="17" startpos="1">if</TOKEN>
                  <TOKEN startline="17" startpos="4">(</TOKEN>
                  <expression>
                    <assignmentExpression>
                      <conditionalExpression>
                        <logicalORExpression>
                          <logicalANDExpression>
                            <bitwiseORExpression>
                              <bitwiseXORExpression>
                                <bitwiseANDExpression>
                                  <equalityExpression>
                                    <relationalExpression>
                                      <shiftExpression>
                                        <additiveExpression>
                                          <multiplicativeExpression>
                                            <unaryExpression>
                                              <postfixExpression>
                                                <leftHandSideExpression>
                                                  <newExpression>
                                                    <memberExpression>
                                                      <primaryExpression>
                                                        <Identifier startline="17" startpos="5">i</Identifier>
                                                      </primaryExpression>
                                                    </memberExpression>
                                                  </newExpression>
                                                </leftHandSideExpression>
                                              </postfixExpression>
                                            </unaryExpression>
                                          </multiplicativeExpression>
                                        </additiveExpression>
                                      </shiftExpression>
                                    </relationalExpression>
                                    <TOKEN startline="17" startpos="7">==</TOKEN>
                                    <relationalExpression>
                                      <shiftExpression>
                                        <additiveExpression>
                                          <multiplicativeExpression>
                                            <unaryExpression>
                                              <postfixExpression>
                                                <leftHandSideExpression>
                                                  <newExpression>
                                                    <memberExpression>
                                                      <primaryExpression>
                                                        <literal>
                                                          <numericliteral>
                                                            <NumericLiteral startline="17" startpos="10">0</NumericLiteral>
                                                          </numericliteral>
                                                        </literal>
                                                      </primaryExpression>
                                                    </memberExpression>
                                                  </newExpression>
                                                </leftHandSideExpression>
                                              </postfixExpression>
                                            </unaryExpression>
                                          </multiplicativeExpression>
                                        </additiveExpression>
                                      </shiftExpression>
                                    </relationalExpression>
                                  </equalityExpression>
                                </bitwiseANDExpression>
                              </bitwiseXORExpression>
                            </bitwiseORExpression>
                          </logicalANDExpression>
                        </logicalORExpression>
                      </conditionalExpression>
                    </assignmentExpression>
                  </expression>
                  <RPAREN startline="17" startpos="11">)</RPAREN>
                  <statement>
                    <statementBlock>
                      <TOKEN startline="17" startpos="13">{</TOKEN>
                      <RBRACE startline="17" startpos="14">}</RBRACE>
                    </statementBlock>
                  </statement>
                </ifStatement>
              </statement>
            </sourceElement>
            <sourceElement>
              <statement>
                <switchStatement>
                  <TOKEN startline="19" startpos="1">switch</TOKEN>
                  <TOKEN startline="19" startpos="7">(</TOKEN>
                  <expression>
                    <assignmentExpression>
                      <conditionalExpression>
                        <logicalORExpression>
                          <logicalANDExpression>
                            <bitwiseORExpression>
                              <bitwiseXORExpression>
                                <bitwiseANDExpression>
                                  <equalityExpression>
                                    <relationalExpression>
                                      <shiftExpression>
                                        <additiveExpression>
                                          <multiplicativeExpression>
                                            <unaryExpression>
                                              <postfixExpression>
                                                <leftHandSideExpression>
                                                  <newExpression>
                                                    <memberExpression>
                                                      <primaryExpression>
                                                        <Identifier startline="19" startpos="8">i</Identifier>
                                                      </primaryExpression>
                                                    </memberExpression>
                                                  </newExpression>
                                                </leftHandSideExpression>
                                              </postfixExpression>
                                            </unaryExpression>
                                          </multiplicativeExpression>
                                        </additiveExpression>
                                      </shiftExpression>
                                    </relationalExpression>
                                  </equalityExpression>
                                </bitwiseANDExpression>
                              </bitwiseXORExpression>
                            </bitwiseORExpression>
                          </logicalANDExpression>
                        </logicalORExpression>
                      </conditionalExpression>
                    </assignmentExpression>
                  </expression>
                  <RPAREN startline="19" startpos="9">)</RPAREN>
                  <caseBlock>
                    <TOKEN startline="19" startpos="11">{</TOKEN>
                    <RBRACE startline="19" startpos="12">}</RBRACE>
                  </caseBlock>
                </switchStatement>
              </statement>
            </sourceElement>
            <sourceElement>
              <statement>
                <iterationStatement>
                  <whileStatement>
                    <TOKEN startline="21" startpos="1">while</TOKEN>
                    <TOKEN startline="21" startpos="7">(</TOKEN>
                    <expression>
                      <assignmentExpression>
                        <conditionalExpression>
                          <logicalORExpression>
                            <logicalANDExpression>
                              <bitwiseORExpression>
                                <bitwiseXORExpression>
                                  <bitwiseANDExpression>
                                    <equalityExpression>
                                      <relationalExpression>
                                        <shiftExpression>
                                          <additiveExpression>
                                            <multiplicativeExpression>
                                              <unaryExpression>
                                                <postfixExpression>
                                                  <leftHandSideExpression>
                                                    <newExpression>
                                                      <memberExpression>
                                                        <primaryExpression>
                                                          <Identifier startline="21" startpos="8">i</Identifier>
                                                        </primaryExpression>
                                                      </memberExpression>
                                                    </newExpression>
                                                  </leftHandSideExpression>
                                                </postfixExpression>
                                              </unaryExpression>
                                            </multiplicativeExpression>
                                          </additiveExpression>
                                        </shiftExpression>
                                      </relationalExpression>
                                      <TOKEN startline="21" startpos="10">!=</TOKEN>
                                      <relationalExpression>
                                        <shiftExpression>
                                          <additiveExpression>
                                            <multiplicativeExpression>
                                              <unaryExpression>
                                                <postfixExpression>
                                                  <leftHandSideExpression>
                                                    <newExpression>
                                                      <memberExpression>
                                                        <primaryExpression>
                                                          <literal>
                                                            <numericliteral>
                                                              <NumericLiteral startline="21" startpos="13">0</NumericLiteral>
                                                            </numericliteral>
                                                          </literal>
                                                        </primaryExpression>
                                                      </memberExpression>
                                                    </newExpression>
                                                  </leftHandSideExpression>
                                                </postfixExpression>
                                              </unaryExpression>
                                            </multiplicativeExpression>
                                          </additiveExpression>
                                        </shiftExpression>
                                      </relationalExpression>
                                    </equalityExpression>
                                  </bitwiseANDExpression>
                                </bitwiseXORExpression>
                              </bitwiseORExpression>
                            </logicalANDExpression>
                          </logicalORExpression>
                        </conditionalExpression>
                      </assignmentExpression>
                    </expression>
                    <RPAREN startline="21" startpos="14">)</RPAREN>
                    <statement>
                      <statementBlock>
                        <TOKEN startline="21" startpos="16">{</TOKEN>
                        <RBRACE startline="21" startpos="17">}</RBRACE>
                      </statementBlock>
                    </statement>
                  </whileStatement>
                </iterationStatement>
              </statement>
            </sourceElement>
            <sourceElement>
              <statement>
                <iterationStatement>
                  <doWhileStatement>
                    <TOKEN startline="23" startpos="1">do</TOKEN>
                    <statement>
                      <statementBlock>
                        <TOKEN startline="23" startpos="4">{</TOKEN>
                        <RBRACE startline="23" startpos="5">}</RBRACE>
                      </statementBlock>
                    </statement>
                    <TOKEN startline="23" startpos="7">while</TOKEN>
                    <TOKEN startline="23" startpos="13">(</TOKEN>
                    <expression>
                      <assignmentExpression>
                        <conditionalExpression>
                          <logicalORExpression>
                            <logicalANDExpression>
                              <bitwiseORExpression>
                                <bitwiseXORExpression>
                                  <bitwiseANDExpression>
                                    <equalityExpression>
                                      <relationalExpression>
                                        <shiftExpression>
                                          <additiveExpression>
                                            <multiplicativeExpression>
                                              <unaryExpression>
                                                <postfixExpression>
                                                  <leftHandSideExpression>
                                                    <newExpression>
                                                      <memberExpression>
                                                        <primaryExpression>
                                                          <Identifier startline="23" startpos="14">i</Identifier>
                                                        </primaryExpression>
                                                      </memberExpression>
                                                    </newExpression>
                                                  </leftHandSideExpression>
                                                </postfixExpression>
                                              </unaryExpression>
                                            </multiplicativeExpression>
                                          </additiveExpression>
                                        </shiftExpression>
                                      </relationalExpression>
                                      <TOKEN startline="23" startpos="16">!=</TOKEN>
                                      <relationalExpression>
                                        <shiftExpression>
                                          <additiveExpression>
                                            <multiplicativeExpression>
                                              <unaryExpression>
                                                <postfixExpression>
                                                  <leftHandSideExpression>
                                                    <newExpression>
                                                      <memberExpression>
                                                        <primaryExpression>
                                                          <literal>
                                                            <numericliteral>
                                                              <NumericLiteral startline="23" startpos="19">0</NumericLiteral>
                                                            </numericliteral>
                                                          </literal>
                                                        </primaryExpression>
                                                      </memberExpression>
                                                    </newExpression>
                                                  </leftHandSideExpression>
                                                </postfixExpression>
                                              </unaryExpression>
                                            </multiplicativeExpression>
                                          </additiveExpression>
                                        </shiftExpression>
                                      </relationalExpression>
                                    </equalityExpression>
                                  </bitwiseANDExpression>
                                </bitwiseXORExpression>
                              </bitwiseORExpression>
                            </logicalANDExpression>
                          </logicalORExpression>
                        </conditionalExpression>
                      </assignmentExpression>
                    </expression>
                    <RPAREN startline="23" startpos="20">)</RPAREN>
                    <statementEnd>
                      <TOKEN startline="23" startpos="21">;</TOKEN>
                    </statementEnd>
                  </doWhileStatement>
                </iterationStatement>
              </statement>
            </sourceElement>
            <sourceElement>
              <statement>
                <iterationStatement>
                  <forStatement>
                    <TOKEN startline="25" startpos="1">for</TOKEN>
                    <TOKEN startline="25" startpos="5">(</TOKEN>
                    <forStatementInitialiserPart>
                      <expressionNoIn>
                        <assignmentExpressionNoIn>
                          <leftHandSideExpression>
                            <newExpression>
                              <memberExpression>
                                <primaryExpression>
                                  <Identifier startline="25" startpos="6">i</Identifier>
                                </primaryExpression>
                              </memberExpression>
                            </newExpression>
                          </leftHandSideExpression>
                          <assignmentOperator>
                            <TOKEN startline="25" startpos="8">=</TOKEN>
                          </assignmentOperator>
                          <assignmentExpressionNoIn>
                            <conditionalExpressionNoIn>
                              <logicalORExpressionNoIn>
                                <logicalANDExpressionNoIn>
                                  <bitwiseORExpressionNoIn>
                                    <bitwiseXORExpressionNoIn>
                                      <bitwiseANDExpressionNoIn>
                                        <equalityExpressionNoIn>
                                          <relationalExpressionNoIn>
                                            <shiftExpression>
                                              <additiveExpression>
                                                <multiplicativeExpression>
                                                  <unaryExpression>
                                                    <postfixExpression>
                                                      <leftHandSideExpression>
                                                        <newExpression>
                                                          <memberExpression>
                                                            <primaryExpression>
                                                              <literal>
                                                                <numericliteral>
                                                                  <NumericLiteral startline="25" startpos="10">0</NumericLiteral>
                                                                </numericliteral>
                                                              </literal>
                                                            </primaryExpression>
                                                          </memberExpression>
                                                        </newExpression>
                                                      </leftHandSideExpression>
                                                    </postfixExpression>
                                                  </unaryExpression>
                                                </multiplicativeExpression>
                                              </additiveExpression>
                                            </shiftExpression>
                                          </relationalExpressionNoIn>
                                        </equalityExpressionNoIn>
                                      </bitwiseANDExpressionNoIn>
                                    </bitwiseXORExpressionNoIn>
                                  </bitwiseORExpressionNoIn>
                                </logicalANDExpressionNoIn>
                              </logicalORExpressionNoIn>
                            </conditionalExpressionNoIn>
                          </assignmentExpressionNoIn>
                        </assignmentExpressionNoIn>
                      </expressionNoIn>
                    </forStatementInitialiserPart>
                    <TOKEN startline="25" startpos="11">;</TOKEN>
                    <expression>
                      <assignmentExpression>
                        <conditionalExpression>
                          <logicalORExpression>
                            <logicalANDExpression>
                              <bitwiseORExpression>
                                <bitwiseXORExpression>
                                  <bitwiseANDExpression>
                                    <equalityExpression>
                                      <relationalExpression>
                                        <shiftExpression>
                                          <additiveExpression>
                                            <multiplicativeExpression>
                                              <unaryExpression>
                                                <postfixExpression>
                                                  <leftHandSideExpression>
                                                    <newExpression>
                                                      <memberExpression>
                                                        <primaryExpression>
                                                          <Identifier startline="25" startpos="13">i</Identifier>
                                                        </primaryExpression>
                                                      </memberExpression>
                                                    </newExpression>
                                                  </leftHandSideExpression>
                                                </postfixExpression>
                                              </unaryExpression>
                                            </multiplicativeExpression>
                                          </additiveExpression>
                                        </shiftExpression>
                                        <TOKEN startline="25" startpos="15">&lt;</TOKEN>
                                        <shiftExpression>
                                          <additiveExpression>
                                            <multiplicativeExpression>
                                              <unaryExpression>
                                                <postfixExpression>
                                                  <leftHandSideExpression>
                                                    <newExpression>
                                                      <memberExpression>
                                                        <primaryExpression>
                                                          <literal>
                                                            <numericliteral>
                                                              <NumericLiteral startline="25" startpos="17">0</NumericLiteral>
                                                            </numericliteral>
                                                          </literal>
                                                        </primaryExpression>
                                                      </memberExpression>
                                                    </newExpression>
                                                  </leftHandSideExpression>
                                                </postfixExpression>
                                              </unaryExpression>
                                            </multiplicativeExpression>
                                          </additiveExpression>
                                        </shiftExpression>
                                      </relationalExpression>
                                    </equalityExpression>
                                  </bitwiseANDExpression>
                                </bitwiseXORExpression>
                              </bitwiseORExpression>
                            </logicalANDExpression>
                          </logicalORExpression>
                        </conditionalExpression>
                      </assignmentExpression>
                    </expression>
                    <TOKEN startline="25" startpos="18">;</TOKEN>
                    <expression>
                      <assignmentExpression>
                        <conditionalExpression>
                          <logicalORExpression>
                            <logicalANDExpression>
                              <bitwiseORExpression>
                                <bitwiseXORExpression>
                                  <bitwiseANDExpression>
                                    <equalityExpression>
                                      <relationalExpression>
                                        <shiftExpression>
                                          <additiveExpression>
                                            <multiplicativeExpression>
                                              <unaryExpression>
                                                <postfixExpression>
                                                  <leftHandSideExpression>
                                                    <newExpression>
                                                      <memberExpression>
                                                        <primaryExpression>
                                                          <Identifier startline="25" startpos="20">i</Identifier>
                                                        </primaryExpression>
                                                      </memberExpression>
                                                    </newExpression>
                                                  </leftHandSideExpression>
                                                  <TOKEN startline="25" startpos="21">++</TOKEN>
                                                </postfixExpression>
                                              </unaryExpression>
                                            </multiplicativeExpression>
                                          </additiveExpression>
                                        </shiftExpression>
                                      </relationalExpression>
                                    </equalityExpression>
                                  </bitwiseANDExpression>
                                </bitwiseXORExpression>
                              </bitwiseORExpression>
                            </logicalANDExpression>
                          </logicalORExpression>
                        </conditionalExpression>
                      </assignmentExpression>
                    </expression>
                    <RPAREN startline="25" startpos="23">)</RPAREN>
                    <statement>
                      <statementBlock>
                        <TOKEN startline="25" startpos="25">{</TOKEN>
                        <RBRACE startline="25" startpos="26">}</RBRACE>
                      </statementBlock>
                    </statement>
                  </forStatement>
                </iterationStatement>
              </statement>
            </sourceElement>
            <sourceElement>
              <statement>
                <iterationStatement>
                  <forInStatement>
                    <TOKEN startline="27" startpos="1">for</TOKEN>
                    <TOKEN startline="27" startpos="5">(</TOKEN>
                    <forInStatementInitialiserPart>
                      <leftHandSideExpression>
                        <newExpression>
                          <memberExpression>
                            <primaryExpression>
                              <Identifier startline="27" startpos="6">i</Identifier>
                            </primaryExpression>
                          </memberExpression>
                        </newExpression>
                      </leftHandSideExpression>
                    </forInStatementInitialiserPart>
                    <TOKEN startline="27" startpos="8">in</TOKEN>
                    <expression>
                      <assignmentExpression>
                        <conditionalExpression>
                          <logicalORExpression>
                            <logicalANDExpression>
                              <bitwiseORExpression>
                                <bitwiseXORExpression>
                                  <bitwiseANDExpression>
                                    <equalityExpression>
                                      <relationalExpression>
                                        <shiftExpression>
                                          <additiveExpression>
                                            <multiplicativeExpression>
                                              <unaryExpression>
                                                <postfixExpression>
                                                  <leftHandSideExpression>
                                                    <newExpression>
                                                      <memberExpression>
                                                        <TOKEN startline="27" startpos="11">new</TOKEN>
                                                        <memberExpression>
                                                          <primaryExpression>
                                                            <Identifier startline="27" startpos="15">Array</Identifier>
                                                          </primaryExpression>
                                                        </memberExpression>
                                                        <arguments>
                                                          <TOKEN startline="27" startpos="20">(</TOKEN>
                                                          <RPAREN startline="27" startpos="21">)</RPAREN>
                                                        </arguments>
                                                      </memberExpression>
                                                    </newExpression>
                                                  </leftHandSideExpression>
                                                </postfixExpression>
                                              </unaryExpression>
                                            </multiplicativeExpression>
                                          </additiveExpression>
                                        </shiftExpression>
                                      </relationalExpression>
                                    </equalityExpression>
                                  </bitwiseANDExpression>
                                </bitwiseXORExpression>
                              </bitwiseORExpression>
                            </logicalANDExpression>
                          </logicalORExpression>
                        </conditionalExpression>
                      </assignmentExpression>
                    </expression>
                    <RPAREN startline="27" startpos="22">)</RPAREN>
                    <statement>
                      <statementBlock>
                        <TOKEN startline="27" startpos="24">{</TOKEN>
                        <RBRACE startline="27" startpos="25">}</RBRACE>
                      </statementBlock>
                    </statement>
                  </forInStatement>
                </iterationStatement>
              </statement>
            </sourceElement>
            <sourceElement>
              <statement>
                <withStatement>
                  <TOKEN startline="29" startpos="1">with</TOKEN>
                  <TOKEN startline="29" startpos="5">(</TOKEN>
                  <expression>
                    <assignmentExpression>
                      <conditionalExpression>
                        <logicalORExpression>
                          <logicalANDExpression>
                            <bitwiseORExpression>
                              <bitwiseXORExpression>
                                <bitwiseANDExpression>
                                  <equalityExpression>
                                    <relationalExpression>
                                      <shiftExpression>
                                        <additiveExpression>
                                          <multiplicativeExpression>
                                            <unaryExpression>
                                              <postfixExpression>
                                                <leftHandSideExpression>
                                                  <newExpression>
                                                    <memberExpression>
                                                      <primaryExpression>
                                                        <Identifier startline="29" startpos="6">obj</Identifier>
                                                      </primaryExpression>
                                                    </memberExpression>
                                                  </newExpression>
                                                </leftHandSideExpression>
                                              </postfixExpression>
                                            </unaryExpression>
                                          </multiplicativeExpression>
                                        </additiveExpression>
                                      </shiftExpression>
                                    </relationalExpression>
                                  </equalityExpression>
                                </bitwiseANDExpression>
                              </bitwiseXORExpression>
                            </bitwiseORExpression>
                          </logicalANDExpression>
                        </logicalORExpression>
                      </conditionalExpression>
                    </assignmentExpression>
                  </expression>
                  <RPAREN startline="29" startpos="9">)</RPAREN>
                  <statement>
                    <statementBlock>
                      <TOKEN startline="29" startpos="11">{</TOKEN>
                      <RBRACE startline="29" startpos="12">}</RBRACE>
                    </statementBlock>
                  </statement>
                </withStatement>
              </statement>
            </sourceElement>
            <sourceElement>
              <statement>
                <returnStatement>
                  <TOKEN startline="31" startpos="1">return</TOKEN>
                  <expression>
                    <assignmentExpression>
                      <conditionalExpression>
                        <logicalORExpression>
                          <logicalANDExpression>
                            <bitwiseORExpression>
                              <bitwiseXORExpression>
                                <bitwiseANDExpression>
                                  <equalityExpression>
                                    <relationalExpression>
                                      <shiftExpression>
                                        <additiveExpression>
                                          <multiplicativeExpression>
                                            <unaryExpression>
                                              <postfixExpression>
                                                <leftHandSideExpression>
                                                  <newExpression>
                                                    <memberExpression>
                                                      <primaryExpression>
                                                        <literal>
                                                          <numericliteral>
                                                            <NumericLiteral startline="31" startpos="8">0</NumericLiteral>
                                                          </numericliteral>
                                                        </literal>
                                                      </primaryExpression>
                                                    </memberExpression>
                                                  </newExpression>
                                                </leftHandSideExpression>
                                              </postfixExpression>
                                            </unaryExpression>
                                          </multiplicativeExpression>
                                        </additiveExpression>
                                      </shiftExpression>
                                    </relationalExpression>
                                  </equalityExpression>
                                </bitwiseANDExpression>
                              </bitwiseXORExpression>
                            </bitwiseORExpression>
                          </logicalANDExpression>
                        </logicalORExpression>
                      </conditionalExpression>
                    </assignmentExpression>
                  </expression>
                  <statementEnd>
                    <TOKEN startline="31" startpos="9">;</TOKEN>
                  </statementEnd>
                </returnStatement>
              </statement>
            </sourceElement>
          </sourceElements>
          <RBRACE startline="32" startpos="0">}</RBRACE>
        </functionBody>
      </functionDeclaration>
    </sourceElement>
  </sourceElements>
</program>